package proyecto.BusinessLogic;

import java.util.List;

import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import proyecto.DataAccessObject.EvaluacionDAORemote;
import proyecto.EntityBeans.Evaluacion;

@Stateless
@Remote(EvaluacionBLRemote.class)
public class EvaluacionBL implements EvaluacionBLRemote {

	EvaluacionDAORemote evaluacionDAORemote;
	
	public int save(Evaluacion evaluacion) {	
		
		try
		{
			Context context = new InitialContext();
			evaluacionDAORemote = (EvaluacionDAORemote) context.lookup("EvaluacionDAO/remote");
		} catch (NamingException e)
		{
			e.printStackTrace();
			throw new RuntimeException(e);
		}
			
		return evaluacionDAORemote.save(evaluacion); //alta de evaluacion		
		
	}
		
	public Evaluacion findById(int id) {
		try
		{
			Context context = new InitialContext();
			evaluacionDAORemote = (EvaluacionDAORemote) context.lookup("EvaluacionDAO/remote");
		} catch (NamingException e)
		{
			e.printStackTrace();
			throw new RuntimeException(e);
		}
			
		return evaluacionDAORemote.findById(id);
		
	}
	
		
	public void merge(Evaluacion evaluacion) {
		try
		{
			Context context = new InitialContext();
			evaluacionDAORemote = (EvaluacionDAORemote) context.lookup("EvaluacionDAO/remote");
			evaluacionDAORemote.merge(evaluacion);
		} catch (NamingException e)
		{
			e.printStackTrace();
			throw new RuntimeException(e);
		}	
		
	}
	
	public List findByNota(String nota)
	{	
		try
		{
			Context context = new InitialContext();
			evaluacionDAORemote = (EvaluacionDAORemote) context.lookup("EvaluacionDAO/remote");
		} catch (NamingException e)
		{
			e.printStackTrace();
			throw new RuntimeException(e);
		}
		
	    return evaluacionDAORemote.findByNota(nota);
	}
	
	public List findAll() {		
		try
		{
			Context context = new InitialContext();
			evaluacionDAORemote = (EvaluacionDAORemote) context.lookup("EvaluacionDAO/remote");
		} catch (NamingException e)
		{
			e.printStackTrace();
			throw new RuntimeException(e);
		}
		
		return evaluacionDAORemote.findAll();
	}
	
	public List findByIdList(int id)
	{	     
		try
		{
			Context context = new InitialContext();
			evaluacionDAORemote = (EvaluacionDAORemote) context.lookup("EvaluacionDAO/remote");
		} catch (NamingException e)
		{
			e.printStackTrace();
			throw new RuntimeException(e);
		}
		
	    return evaluacionDAORemote.findByIdList(id);
	}
	
		
	public void remove(int idEvaluacion){	
		try
		{
			Context context = new InitialContext();
			evaluacionDAORemote = (EvaluacionDAORemote) context.lookup("EvaluacionDAO/remote");
		} catch (NamingException e)
		{
			e.printStackTrace();
			throw new RuntimeException(e);
		}
		evaluacionDAORemote.remove(idEvaluacion);
	}
	
	public void refresh(Evaluacion evaluacion){
		try
		{
			Context context = new InitialContext();
			evaluacionDAORemote = (EvaluacionDAORemote) context.lookup("EvaluacionDAO/remote");
		} catch (NamingException e)
		{
			e.printStackTrace();
			throw new RuntimeException(e);
		}
		evaluacionDAORemote.refresh(evaluacion);
	}
		
}
